package com.gqj.bas.mapper;

import com.gqj.bas.domain.BasUnit;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 计量单位Mapper接口
 * 
 * @author lxq
 * @date 2023-12-17
 */
public interface BasUnitMapper 
{
    /**
     * 查询计量单位
     * 
     * @param unitId 计量单位主键
     * @return 计量单位
     */
    public BasUnit selectBasUnitByUnitId(Long unitId);

    /**
     * 查询计量单位列表
     * 
     * @param basUnit 计量单位
     * @return 计量单位集合
     */
    public List<BasUnit> selectBasUnitList(BasUnit basUnit);

    /**
     * 新增计量单位
     * 
     * @param basUnit 计量单位
     * @return 结果
     */
    public int insertBasUnit(BasUnit basUnit);

    /**
     * 修改计量单位
     * 
     * @param basUnit 计量单位
     * @return 结果
     */
    public int updateBasUnit(BasUnit basUnit);

    /**
     * 删除计量单位
     * 
     * @param unitId 计量单位主键
     * @return 结果
     */
    public int deleteBasUnitByUnitId(Long unitId);

    /**
     * 批量删除计量单位
     * 
     * @param unitIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBasUnitByUnitIds(Long[] unitIds);

    /**
     * 查询单位是否被引用
     *
     * @param unitId 单位ID
     */
    public int checkMaterialExistUnit(Long unitId);

    /**
     * 查询计量单位下拉框
     *
     * @param basUnit 计量单位
     * @return 计量单位集合
     */
    public List<Map<String, Object>> unitOptions(BasUnit basUnit);

    /**
     * 校验单位信息是否唯一
     *
     * @param unitName 单位名称
     * @return 结果
     */
    public BasUnit checkUnitNameUnique(@Param("unitName") String unitName);
}
